1. Field of the Invention
Exemplary embodiments of the present invention relate to Service-Oriented Architecture (SOA) solutions, and more particularly, to Quality of Service (QoS) in SOA solutions.
2. Description of Background
The notion of Service-Oriented Architecture (SOA) has received significant attention within the software design and development community. SOA is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. SOA provides a uniform means to offer, discover, interact with, and use capabilities to produce desired effects consistent with measurable preconditions and expectations. SOA allows business and IT convergence through agreement on a set of loosely-coupled, business-aligned IT services that collectively support an organization's business processes and goals. Not only does it provide flexible, decoupled functionality that can be reused, but it also provides the mechanisms to externalize variations of Quality of Service (QoS); for example, in declarative specifications such as WS-Policy and related standards.
The SOA concept is based on an architectural style in which services are the mechanism by which needs and capabilities are brought together. A service is a software resource (discoverable) with an externalized service description. In general, entities (people and organizations) offer capabilities and act as service providers. Those with needs who make use of services are referred to as service consumers. The service description is available for searching, binding, and invocation by a service consumer, allowing prospective consumers to decide if the service is suitable for their current needs and establishing whether a consumer satisfies any requirements of the service provider.
The main drivers for SOA-based architectures are to facilitate the manageable growth of large-scale enterprise systems, to facilitate Internet-scale provisioning and use of services, and to reduce costs in cooperation between organizations. SOA provides a simple, scalable paradigm for organizing large networks of systems that require interoperability to realize the value inherent in the individual components. SOA is commonly implemented using Web services. A major focus of Web services is to make functional building blocks accessible over standard Internet protocols that are independent from platforms and programming languages. These services can be either new applications or existing legacy applications wrapped by Web service interfaces to make them network enabled. Nevertheless, although SOA and Web services technology have widely been considered as the next-generation paradigm for distributed computing and Internet computing, the speed of their actual adoption has been quite slow.
One essential reason is the lack of a systematic method that allows service providers to ensure QoS of the provided services at the solution level. QoS can include goals for information availability, performance, data throughput, and consistency or accuracy of the data Inherent in SOA are characteristics that exacerbate existing QoS concerns in computer systems. Among these characteristics are: increased virtualization, loose coupling, widespread use of XML, the composition of federated services, heterogeneous computing infrastructures, decentralized service level agreements (SLAs), and the needs to aggregate IT QoS metrics to produce business metrics. These characteristics create complications for QoS that clearly require attention within any SOA solution. Without having a guarantee regarding quality of an entire solution, businesses will be reluctant to adopt the products and services provided by the solution. Therefore, a technique that supports SOA and Web services-oriented solution-level QoS management is desired.
The Web services community has been putting significant effort into addressing the issue of QoS challenges related to Web services. In the current Web services standard stack, a dedicated QoS layer is identified to accumulate standards and protocols that enhance the trustworthiness of Web services in various aspects. In this current QoS layer, four standards have been specified in regard to four corresponding perspectives: security, transaction, reliable messaging, and resource lifetime management. Web Services Security (WS-Security) provides a set of mechanisms to help Web service developers in securing SOAP message exchanges. Web Services Transaction (WS-TM) intends to facilitate interoperability across existing transaction managers, long running compensations, and asynchronous business process flows. Web Services Reliability (WS-Reliability) is a SOAP-based protocol designed to ensure reliable message exchanges. WS-Resource Lifetime specification defines message exchanges to standardize the means how a WS-Resource can be destroyed, and how resource properties (WS-ResourceProperties) can be used to inspect and monitor the lifetime of a WS-Resource.
It can be seen that the QoS layer provided in the current Web services standard stack defines a set of standards to help developers enhance the quality of Web services at the low-level message and transaction levels. To convince enterprises to adopt external Web services into their business processes, however, the quality of Web services needs to be assured at the solution level that provides integrated QoS control at various granularity levels. Furthermore, these existing standards focus on individual QoS attributes at the service level. An enterprise service typically involves multiple collaborative business services (for example, a travel planning service can involve an airline ticket booking service, a hotel reservation service, and a car rental service). QoS control needs to be offered at the composite service level instead of individual service level. Moreover, the current Web services QoS standards merely focus on a small subset of QoS attributes (for example, security and reliability). Major requirements supporting QoS in Web services should include a holistic set of attributes that includes availability, accessibility, integrity, performance, reliability, regulatory, and security.
Accordingly, it is desirable to provide for a method for guiding software engineers in creating and enabling a management framework that helps to align business with IT while providing for fine-grained SOA solution-level QoS control.